﻿//--------------------------------------------------------------------//
//  Clase creada automaticamente  -  miércoles, 23 de noviembre de 2011   //
//                                                                    //
//  Puede ser modificada, el generador no sobreescribe este archivo.  //
//--------------------------------------------------------------------//
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Collections.Generic;
using DataBaseManager;
using Utilities.Common;
using BL.DataAccess;

namespace BL.Entities
{
    public partial class ColeccionPacientesForm : List<PacienteForm>
    {
        //  Agregue su codigo aqui...

        public static ColeccionPacientesForm FindAll()
        {
            return DataBase.Current.Load<ColeccionPacientesForm, PacienteForm>(Tables.Pacientes);
        }


        /// <summary>
        /// Busca por apellido y o nombre
        /// </summary>
        /// <param name="pApellido"></param>
        public static ColeccionPacientesForm LoadByApellido(string pApellido)
        {

            PacienteForm p;
            DataTable dt;
            ColeccionPacientesForm pM = new ColeccionPacientesForm();
            ParameterManager parameters = new ParameterManager();

            dt = DataBase.Current.ExecuteSQL("Select * from Pacientes where apellido + ' '+nombre +' '+ apellido like '%" + pApellido.Replace(" ", "%") + "%'");
            foreach (DataRow dr in dt.Rows)
            {
                p = LoadRow(dr);
                pM.Add(p);
            }

            return pM;
        }


        private static PacienteForm LoadRow(DataRow r)
        {
            PacienteForm p = null;
            if (r != null)
            {

                p = new PacienteForm();
                p.NumeroAfiliado = r["NumeroAfiliado"].ToString();
                p.Nombre = r["nombre"].ToString();
                p.Apellido = r["Apellido"].ToString();
                p.Telefono = r["telefono"].ToString();
                p.Mail = r["mail"].ToString();
                p.ObraSocial = r["NombreObra"].ToString();

            }
            return p;
        }

        public static PacienteForm FindById(string p)
        {

            ParameterManager pM = new ParameterManager();
            pM.Add(new Parameter("NumeroAfiliado", p));
            DataTable dt = DataBase.Current.Select(Tables.Pacientes, pM);
            if (dt.Rows.Count == 1)
            {
                return LoadRow(dt.Rows[0]);
            }
            return null;
        }
        static ColeccionPacientesForm mCurrent;
        public static ColeccionPacientesForm Current
        {
            get
            {
                if (mCurrent == null)
                {

                    mCurrent = ColeccionPacientesForm.FindAll();
                }
                return mCurrent;
            }
            set { mCurrent = value; }


        }
    }
}
